#!/usr/bin/env node

const {program}=require("commander")
const inquirer=require("inquirer")
// 版本号
const {version}=require("./package.json")

// 引入方法
const {utils}=require("./utils")

// 定义交互列表
const promptList=[{
    type:"list",
    name:"list",
    message:"请选择",
    choices:["增加","编辑","删除","查看"]
}]

// 定义方法
const actionHandle=()=>{
    // 把list解析出来
    inquirer.prompt(promptList).then(({list})=>{
        // 判断
        switch (list) {
            case "查看":
                utils.createTable()
                break;
            case "增加":
                inquirer.prompt([{
                    type:"input",
                    name:"fileName",
                    message:"请输入新增的文件名"
                },{
                    type:"input",
                    name:"fileContent",
                    message:"请输入文件内容"
                }]).then(({fileName,fileContent})=>{
                    utils.add(fileName,fileContent)
                })
                break;
            case "删除":
                inquirer.prompt([{
                    type:"list",
                    name:"fileName",
                    message:"请选择",
                    choices:[...utils.getFileList()]
                }]).then(({fileName})=>{
                    utils.del(fileName)
                })
                break;
            case "编辑":
                inquirer.prompt([{
                    type:"list",
                    name:"fileName",
                    message:"请选择要编辑的文件",
                    choices:[...utils.getFileList()]
                },{
                    type:"input",
                    name:"newfileName",
                    message:"请输入新名字"
                }]).then(({fileName,newfileName})=>{
                    utils.edit(fileName,newfileName)
                })
                break;
        }
    })
}

// 定义命令
program
    .option("init")
    .description("table")
    .action(actionHandle)

// 解析
program.version(version).parse(process.argv)